Repository navigation
feat: действия организатора с кейсом, привязкой и сдачей проекта - #814
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Что изменено
Организаторы программы и администраторы могут подтвердить смену кейса, открепление заявки и сдачу текущих материалов за участника после срока. Обычный лидерский endpoint сохраняет свои ограничения.
Зачем
Исправление ошибочных привязок/дублей и помощь участникам при проблемах со сдачей.
Реализация
Двухэтапное preview/apply: подписанное подтверждение с актером, программой, действием, ID связей, кейсом, хешем состояния и сроком10 минут. Apply повторяет права и валидацию под блокировками Project(no-key) → Program → Link/definitions.
Смена кейса сохраняет оценки и назначения оценивших; снимает только несовместимые назначения без оценки. Открепление удаляет связь, ее значения, назначения и приглашения, очищает profile.project только этой программы; проект/команда/регистрация/аккаунты/оценки/другие программы сохраняются. Сдача проверяет обязательные поля, варианты, URL материалов, завершенность заявки и команду. При блокере весь набор отклоняется; уже сданные пропускаются с прежней датой.
API
Новые POST /programs/{id}/management/projects/actions/{preview|apply}/. Тело: action(change_case|detach|submit), ids, case_name для смены, preview_token для apply. Preview: items/errors, counts, can_apply, preview_token; apply: changed_count/already_submitted_count. Старые API не меняются, миграций нет.
UI
Отдельный frontend PR после API: существующее меню строк, центральные подтверждения и массовая сдача по всем выбранным страницам.
Permissions
can_manage_program на конкретной программе, повтор под lock. Аноним401; посторонний/эксперт/участник403; чужая связь404; устаревшее/подмененное подтверждение409. Аудит actor/program/action/link IDs без содержимого анкет.
Проверки
Acceptance criteria
Риски и ограничения
Оценки открепленной заявки сохраняются в БД и исключаются из рейтинга отсутствием link. Реальные пользователи и production не изменялись. Dev deploy и published QA после CI.